home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / OCFINC.PAK / OCREMVIE.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  6KB  |  168 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectComponents
  3. // Copyright (c) 1994, 1997 by Borland International, All Rights Reserved
  4. //
  5. // $Revision:   2.9  $
  6. //
  7. // Definition of TOcRemView Class
  8. //----------------------------------------------------------------------------
  9. #if !defined(OCF_OCREMVIE_H)
  10. #define OCF_OCREMVIE_H
  11.  
  12. #if !defined(OCF_OCVIEW_H)
  13. # include <ocf/ocview.h>
  14. #endif
  15.  
  16. #if defined(BI_NAMESPACE)
  17. namespace OCF {
  18. #endif
  19.  
  20. //
  21. // class TOcRemView
  22. // ~~~~~ ~~~~~~~~~~
  23. // Remote Viewer object for a server document
  24. //
  25. class _ICLASS TOcRemView : public TOcView, public IBPart2 {
  26.   public:
  27.     TOcRemView(TOcDocument& doc, TOcContainerHost* cs, TOcServerHost* ss,
  28.                TRegList* regList=0, IUnknown* outer=0);
  29.  
  30.     // Compatibility
  31.     TOcRemView(TOcDocument& doc, TRegList* regList = 0, IUnknown* outer = 0);
  32.  
  33.     virtual void   ReleaseObject();
  34.  
  35.     // IBSite pass-thrus
  36.     //
  37.     void    Invalidate(TOcInvalidate);
  38.     void    Disconnect();
  39.     virtual bool EvSetFocus(bool set);
  40.  
  41.     // IBDocument pass-thrus
  42.     //
  43.     void   EvClose();
  44.     void   Rename();
  45.     TString GetContainerTitle();
  46.     void   GetInitialRect(bool selection = false);
  47.     bool   Save(IStorage* storageI);
  48.     bool   Load(IStorage* storageI);
  49.  
  50.     // IBApplication pass-thrus
  51.     //
  52.     bool   SetContainerStatusText(const char far* text);
  53.  
  54.     // Server State and Kind accessors, etc.
  55.     //
  56.     enum TState {                  // Current state of this server view
  57.       Hidden,                        //  Hidden & ready to go
  58.       Closing,                       //  Shutting down
  59.       OpenEditing,                   //  Open editing
  60.       InPlaceActive,                 //  Inplace active
  61.     };
  62.     enum TKind {                   // What kind of server view this is
  63.       DontKnow,                      //  Don't know yet, wait for Init()
  64.       Embedding,                     //  Normal Embedding
  65.       LoadFromFile,                  //  Transient load-from-file
  66.       Link,                          //  Load-from-file is really a link
  67.     };
  68.     TState  GetState() const {return State;}
  69.     TKind   GetKind() const {return Kind;}
  70.  
  71.     // Used by TOcLinkView to let us know our state was changed
  72.     //
  73.     void    SetOpenEditing() {State = OpenEditing;}
  74.  
  75.     // Object reference & lifetime managment
  76.     //
  77.     ulong   _IFUNC AddRef();
  78.     ulong   _IFUNC Release();
  79.     HRESULT _IFUNC QueryInterface(const GUID far& iid, void far*far* iface);
  80.  
  81.   protected:
  82.     // IBContains forwarding to base
  83.     //
  84.     HRESULT _IFUNC Init(LPCOLESTR path);
  85.     HRESULT _IFUNC GetPart(IBPart far* far*, LPCOLESTR);
  86.  
  87.     // IBContainer implementation for Bolero to use
  88.     //
  89.     HRESULT  _IFUNC BringToFront();
  90.  
  91.     // TUnknown virtual overrides
  92.     //
  93.     HRESULT      QueryObject(const IID far& iid, void far* far* iface);
  94.  
  95.     // IBContainer forwarding to base
  96.     //
  97.     void    _IFUNC DragFeedback(TPoint far* p, const TRect far* r,
  98.                                 TOcMouseAction a, uint cf, HRESULT& hr);
  99.  
  100.     HRESULT _IFUNC AllowInPlace();
  101.  
  102.     // IBDataNegotiator implementation to eliminate ambiguity
  103.     //
  104.     uint     _IFUNC CountFormats();
  105.     HRESULT  _IFUNC GetFormat(uint index, TOcFormatInfo far* fmt);
  106.  
  107.     // IBDataProvider2 implementation
  108.     //
  109.     HANDLE  _IFUNC  GetFormatData(TOcFormatInfo far*);
  110.     HRESULT _IFUNC  SetFormatData(TOcFormatInfo far* fmt, HANDLE data, BOOL release);
  111.     HRESULT _IFUNC  Draw(HDC, const RECTL far*, const RECTL far*, TOcAspect, TOcDraw bd);
  112.     HRESULT _IFUNC  GetPartSize(TSize far*);
  113.     HRESULT _IFUNC  Save(IStorage*, BOOL sameAsLoad, BOOL remember);
  114.  
  115.     // IBPart(2) implementation
  116.     //
  117.     HRESULT _IFUNC  Init(IBSite far*, TOcInitInfo far*);
  118.     HRESULT _IFUNC  Close();
  119.     HRESULT _IFUNC  CanOpenInPlace();
  120.     HRESULT _IFUNC  SetPartSize(TSize far*);
  121.     HRESULT _IFUNC  SetPartPos(TRect far*);
  122.     HRESULT _IFUNC  Activate(BOOL);
  123.     HRESULT _IFUNC  Show(BOOL);
  124.     HRESULT _IFUNC  Open(BOOL);
  125.     HRESULT _IFUNC  EnumVerbs(TOcVerb far*);
  126.     HRESULT _IFUNC  DoVerb(uint);
  127.     HWND    _IFUNC  OpenInPlace(HWND);
  128.     HRESULT _IFUNC  InsertMenus(HMENU, TOcMenuWidths far*);
  129.     HRESULT _IFUNC  ShowTools(BOOL);
  130.     void    _IFUNC  FrameResized(const TRect far*, BOOL);
  131.     HRESULT _IFUNC  DragFeedback(TPoint far*, BOOL);
  132.     HRESULT _IFUNC  GetPalette(LOGPALETTE far* far*);
  133.     HRESULT _IFUNC  SetHost(IBContainer far* objContainer);
  134.     HRESULT _IFUNC  DoQueryInterface(const IID far& iid, void far* far* pif);
  135.     LPOLESTR _IFUNC GetName(TOcPartName);
  136.  
  137.   protected:
  138.     void            Init();          // Constructor helper
  139.                    ~TOcRemView();
  140.  
  141.     IBContainer*    BContainerI;     //
  142.     IBLinkable*     BLSiteI;         // for site moniker
  143.     IUnknown*       BSite;           // In-place site helper
  144.     IBSite*         BSiteI;          // Site interface
  145.     IBApplication*  BAppI;           // Site's application interface
  146.     HWND            HRealParent;     // View's real parent
  147.     TOcToolBarInfo  ToolBarInfo;     // Inplace tool bar info
  148.  
  149.     TState          State;           // Current state of this server view
  150.     TKind           Kind;            // What kind of server view this is
  151. };
  152.  
  153. #if defined(BI_NAMESPACE)
  154. } // namespace OCF
  155. #endif
  156.  
  157. //----------------------------------------------------------------------------
  158. // Inline implementations
  159. //
  160.  
  161. //
  162. inline bool TOcRemView::SetContainerStatusText(const char far* text)
  163. {
  164.   return HRIsOK(BAppI->SetStatusText(OleStr(text)));
  165. }
  166.  
  167. #endif  // OCF_OCREMVIE_H
  168.